This invention relates generally to data caching, and in particular, to caching data describing actions in a social networking system.
Social networking systems allow users to form connections with other users and to share information with those other users (often called “friends” or “connections”). Examples of shared information include text data, photos, videos, web links, or any other suitable type of information. Information communicated via social networking systems is often distributed from one user to multiple users. For example, a single social networking system user may post a photo for presentation to dozens, hundreds, or even thousands of other users connected to the user.
Additionally, information communicated from a user to other users via the social networking system is typically not a one-time communication like email, but rather is archived for display to users of the social networking system at any time. For example, social networking systems store information about the latest actions performed by users connected to a user, allowing the user to retrieve the stored information at any time. Examples of actions include posting of content such as photos, videos, and text, as well as attending events, dining at restaurants, participating in sports, etc. As any user may potentially be a connection to any other user, storing information for notifying users of actions grows in complexity as the total number of users and the numbers of users connected to other users increase.
As the number of users of social networking systems has continually grown, the task of providing timely and updated notifications of actions to users has grown exponentially. Users are now sharing increasing amounts of information through social networking system users on a daily basis, and each user's information is being shared with an increasing number of additional users. Accordingly, social networking systems face the growing challenge of aggregating relevant information for notifying their users. As a user may be connected to hundreds or even thousands of other users, social networking systems may potentially have to retrieve data from hundreds or even thousands of different data stores to provide a user with recent information about other users connected to the user.
Rather than retrieve data in real-time, some social networking systems provide their users with notifications of actions that do not reflect the most recent actions by social networking system users. Other social networking systems do not even attempt to generate notifications identifying actions of all users connected to a user, but rather notify the user of actions performed by a subset of users connected to the user. However, these approaches to providing notifications do not provide a user with current information about actions taken by users connected to the user.